#pragma once 

#include <IDK.hpp>

class TRenderable :  public TObject, virtual public IDK::IRenderable
{
	IDKClass;
protected:
	IDK::Material mMaterial;
protected: // Abstract class
	TRenderable()
	{
	}

	TRenderable(IDK::Material mtrl): mMaterial(mtrl)
	{}
public:
	void SetMaterial(IDK::Material material)
	{
		mMaterial = material;
	}

	virtual bool Render(IDK::IRenderState& rndState)
	{
		mMaterial->Render(rndState);
		return true;
	}

	virtual void Rendered(IDK::IRenderState& rndState)
	{
		mMaterial->Rendered(rndState);
	}
};